import 'package:flutter/material.dart';
import 'package:flutter_small_project/pages/login/index.dart';
import 'package:flutter_small_project/pages/profile/index.dart';
import 'package:flutter_small_project/pages/tabs_page.dart';
import 'package:flutter_small_project/utils/tokenManager.dart';

import 'pages/notice/index.dart';

void main() {
  runApp(MaterialApp(
      routes: {
        '/': (context) => const TabsPage(),
        '/notic_detail': (context) => const NoticeDetail(),
        '/login': (context) => const LoginPage(), // 登录页面
        // '/profile':(context)=> const ProfilePage(),  // 个人中心
      },
      initialRoute: '/',
      //路由拦截里面不能执行异步代码，所以对getToken()方法进行重新封装
      onGenerateRoute: (settings) {
        // settings 是路由对象， 里面包含 name(路由名称),  arguments(路由参数)
        // 首先获取token
        final token = tokenManager.getToken();
        if (token.isEmpty) {
          // 如果token为空，则跳转到登录页面
          return MaterialPageRoute(
            //  登录页面
            builder: (context) => const LoginPage(),
          );
        } else {
          // 此时token不为空
          if (settings.name == '/profile') {
            return MaterialPageRoute(
              //  个人中心,并将参数传递给个人中心页面
              builder: (context) => ProfilePage(
                userInfo: settings.arguments as Map<String, dynamic>,
              ),
            );
          }
          return null;
        }
      }));
}
